package com.zone.service.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zone.common.core.annotation.Excel;
import com.zone.common.core.web.domain.BaseEntity;

/**
 * 网点管理对象 zone_bank
 * 
 * @author liuyang
 * @date 2025-11-13
 */
public class Bank extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID，自增 */
    private Long id;

    /** 网点编号，唯一 */
    @Excel(name = "网点编号，唯一")
    private String bankCode;

    /** 网点名称 */
    @Excel(name = "网点名称")
    private String bankName;

    /** 简称 */
    @Excel(name = "简称")
    private String shortName;

    /** 网点地址 */
    @Excel(name = "网点地址")
    private String address;

    /** 联系人 */
    @Excel(name = "联系人")
    private String contactPerson;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactPhone;

    /** 网点类型 */
    @Excel(name = "网点类型")
    private Integer bankType;

    /** 网点状态 */
    @Excel(name = "网点状态")
    private Integer status;

    /** 区域ID，可关联区域表 */
    @Excel(name = "区域ID，可关联区域表")
    private Long areaId;

    /** 机构ID，外键关联organization表 */
    @Excel(name = "机构ID，外键关联organization表")
    private Long orgId;

    /** 三级机构id，也可以说是从属网点id */
    @Excel(name = "三级机构id，也可以说是从属网点id")
    private Long parentBankId;

    /** 位置经度 */
    @Excel(name = "位置经度")
    private BigDecimal locateLat;

    /** 位置纬度 */
    @Excel(name = "位置纬度")
    private BigDecimal locateLng;

    /** 休息时间（如：每周日休息） */
    @Excel(name = "休息时间", readConverterExp = "如=：每周日休息")
    private String restTime;

    /** 钱安达钥匙数量 */
    @Excel(name = "钱安达钥匙数量")
    private Long qianAndaKey;

    /** 枪柜钥匙数量 */
    @Excel(name = "枪柜钥匙数量")
    private Long gunCabinetKey;

    /** 交行车辆通行卡(0:无, 1:有) */
    @Excel(name = "交行车辆通行卡(0:无, 1:有)")
    private Long commCardBank;

    /** 扫描标记：0-不扫描，1-扫描 */
    @Excel(name = "扫描标记：0-不扫描，1-扫描")
    private Long scanFlag;

    /** 网点费用属性 */
    @Excel(name = "网点费用属性")
    private Long feeAttribute;

    /** 特殊黑袋类型 */
    private Long otherboxType;

    /** 特殊黑袋数量 */
    @Excel(name = "特殊黑袋数量")
    private Long otherboxNum;

    /** 预约送箱日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预约送箱日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date appointDeliveryDate;

    /** 上线日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上线日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date onlineDate;

    /** 暂停日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "暂停日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date suspendDate;

    /** 停用日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "停用日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date offlineDate;

    /** 合署日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合署日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date coLocationDate;

    /** 是否扫描中调箱 */
    @Excel(name = "是否扫描中调箱")
    private Long isScanMidbox;

    /** PDA进入密码 */
    private String pdaPwd;

    /** 逻辑删除：0-未删除，1-已删除 */
    private Long deleted;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setBankCode(String bankCode) 
    {
        this.bankCode = bankCode;
    }

    public String getBankCode() 
    {
        return bankCode;
    }

    public void setBankName(String bankName) 
    {
        this.bankName = bankName;
    }

    public String getBankName() 
    {
        return bankName;
    }

    public void setShortName(String shortName) 
    {
        this.shortName = shortName;
    }

    public String getShortName() 
    {
        return shortName;
    }

    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }

    public void setContactPerson(String contactPerson) 
    {
        this.contactPerson = contactPerson;
    }

    public String getContactPerson() 
    {
        return contactPerson;
    }

    public void setContactPhone(String contactPhone) 
    {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() 
    {
        return contactPhone;
    }

    public void setBankType(Integer bankType) 
    {
        this.bankType = bankType;
    }

    public Integer getBankType() 
    {
        return bankType;
    }

    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    public void setAreaId(Long areaId) 
    {
        this.areaId = areaId;
    }

    public Long getAreaId() 
    {
        return areaId;
    }

    public void setOrgId(Long orgId) 
    {
        this.orgId = orgId;
    }

    public Long getOrgId() 
    {
        return orgId;
    }

    public void setParentBankId(Long parentBankId) 
    {
        this.parentBankId = parentBankId;
    }

    public Long getParentBankId() 
    {
        return parentBankId;
    }

    public void setLocateLat(BigDecimal locateLat) 
    {
        this.locateLat = locateLat;
    }

    public BigDecimal getLocateLat() 
    {
        return locateLat;
    }

    public void setLocateLng(BigDecimal locateLng) 
    {
        this.locateLng = locateLng;
    }

    public BigDecimal getLocateLng() 
    {
        return locateLng;
    }

    public void setRestTime(String restTime) 
    {
        this.restTime = restTime;
    }

    public String getRestTime() 
    {
        return restTime;
    }

    public void setQianAndaKey(Long qianAndaKey) 
    {
        this.qianAndaKey = qianAndaKey;
    }

    public Long getQianAndaKey() 
    {
        return qianAndaKey;
    }

    public void setGunCabinetKey(Long gunCabinetKey) 
    {
        this.gunCabinetKey = gunCabinetKey;
    }

    public Long getGunCabinetKey() 
    {
        return gunCabinetKey;
    }

    public void setCommCardBank(Long commCardBank) 
    {
        this.commCardBank = commCardBank;
    }

    public Long getCommCardBank() 
    {
        return commCardBank;
    }

    public void setScanFlag(Long scanFlag) 
    {
        this.scanFlag = scanFlag;
    }

    public Long getScanFlag() 
    {
        return scanFlag;
    }

    public void setFeeAttribute(Long feeAttribute) 
    {
        this.feeAttribute = feeAttribute;
    }

    public Long getFeeAttribute() 
    {
        return feeAttribute;
    }

    public void setOtherboxType(Long otherboxType) 
    {
        this.otherboxType = otherboxType;
    }

    public Long getOtherboxType() 
    {
        return otherboxType;
    }

    public void setOtherboxNum(Long otherboxNum) 
    {
        this.otherboxNum = otherboxNum;
    }

    public Long getOtherboxNum() 
    {
        return otherboxNum;
    }

    public void setAppointDeliveryDate(Date appointDeliveryDate) 
    {
        this.appointDeliveryDate = appointDeliveryDate;
    }

    public Date getAppointDeliveryDate() 
    {
        return appointDeliveryDate;
    }

    public void setOnlineDate(Date onlineDate) 
    {
        this.onlineDate = onlineDate;
    }

    public Date getOnlineDate() 
    {
        return onlineDate;
    }

    public void setSuspendDate(Date suspendDate) 
    {
        this.suspendDate = suspendDate;
    }

    public Date getSuspendDate() 
    {
        return suspendDate;
    }

    public void setOfflineDate(Date offlineDate) 
    {
        this.offlineDate = offlineDate;
    }

    public Date getOfflineDate() 
    {
        return offlineDate;
    }

    public void setCoLocationDate(Date coLocationDate) 
    {
        this.coLocationDate = coLocationDate;
    }

    public Date getCoLocationDate() 
    {
        return coLocationDate;
    }

    public void setIsScanMidbox(Long isScanMidbox) 
    {
        this.isScanMidbox = isScanMidbox;
    }

    public Long getIsScanMidbox() 
    {
        return isScanMidbox;
    }

    public void setPdaPwd(String pdaPwd) 
    {
        this.pdaPwd = pdaPwd;
    }

    public String getPdaPwd() 
    {
        return pdaPwd;
    }

    public void setDeleted(Long deleted) 
    {
        this.deleted = deleted;
    }

    public Long getDeleted() 
    {
        return deleted;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("bankCode", getBankCode())
            .append("bankName", getBankName())
            .append("shortName", getShortName())
            .append("address", getAddress())
            .append("contactPerson", getContactPerson())
            .append("contactPhone", getContactPhone())
            .append("bankType", getBankType())
            .append("status", getStatus())
            .append("areaId", getAreaId())
            .append("orgId", getOrgId())
            .append("parentBankId", getParentBankId())
            .append("locateLat", getLocateLat())
            .append("locateLng", getLocateLng())
            .append("restTime", getRestTime())
            .append("qianAndaKey", getQianAndaKey())
            .append("gunCabinetKey", getGunCabinetKey())
            .append("commCardBank", getCommCardBank())
            .append("scanFlag", getScanFlag())
            .append("feeAttribute", getFeeAttribute())
            .append("otherboxType", getOtherboxType())
            .append("otherboxNum", getOtherboxNum())
            .append("appointDeliveryDate", getAppointDeliveryDate())
            .append("onlineDate", getOnlineDate())
            .append("suspendDate", getSuspendDate())
            .append("offlineDate", getOfflineDate())
            .append("coLocationDate", getCoLocationDate())
            .append("isScanMidbox", getIsScanMidbox())
            .append("pdaPwd", getPdaPwd())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("deleted", getDeleted())
            .toString();
    }
}
